草庐IT

python - 带有 Web 后端的日志存储

全部标签

ruby-on-rails - RSpec 期望接收带有数组的方法,但顺序无关紧要

假设我有方法#sum,它接受一个数组并计算所有元素的总和。我正在stub:beforedoexpect(calculation_service).toreceive(:sum?).with([1,2,3]){6}end不幸的是,我的测试服以随机顺序传递数组。由于引发了该错误:Failure/Error:subject{do_crazy_stuff!}#received:sum?withunexpectedargumentsexpected:([1,2,3])got:([3,2,1])是否可以忽略数组元素的顺序对方法调用进行stub?array_including(1,2,3)无法确保数

Ruby 相当于 Python setattr()

好吧,将我添加到爱上Ruby但对PyAddiction挥之不去的Python程序员的列表中。喜欢关于Python'sgetattr的帖子,我正在寻找与此等效的Ruby:setattr(obj,'attribute',value)其中obj是一个对象实例,attribute是对象属性之一的字符串名称,value是该对象的值。等效代码为:obj.attribute=value我假设这是可能的(因为现在在Python中的任何可能在Ruby中似乎更容易),但找不到它的文档。 最佳答案 obj.instance_variable_set("@

ruby - 从 Mechanize 中删除以前存储的 cookie

有没有一种方法或任何其他方式可以用来删除所有以前存储在Mechanize中的cookie?它记得我已经登录,这对我来说不是一件好事。每次连接到该页面时,我都需要登录。 最佳答案 在类似的东西之后agent=Mechanize.newagent.getSOMEURL您可以使用agent.cookie_jar.clear!删除所有cookie,这样代理的下一个请求将不会发送任何cookie。 关于ruby-从Mechanize中删除以前存储的cookie,我们在StackOverflow上找

ruby - 带有通配符的正则表达式否定回顾

如果附近没有其他文本block,我会尝试匹配一些文本。例如,如果"foo"不在它之前,我想匹配"bar"。我可以匹配"bar"如果"foo"没有立即在此正则表达式中使用负向后视:/(?但我也喜欢不匹配"foo12345bar"。我试过:/(?但使用通配符+范围似乎是Ruby中的无效正则表达式。我是不是想错了问题? 最佳答案 您的思考方式是正确的。但不幸的是,lookbehinds通常是固定长度的。唯一的主要异常(exception)是.NET的正则表达式引擎,它允许在lookbehind中使用重复量词。但是因为你只需要消极的回顾而不

ruby - 在 ruby​​ 测试中启动 Web 服务器

我正在编写一个库来包装tsung的功能,以便Rails应用程序可以更好地使用它。我想编写一些集成测试,归结为以下内容:启动一个简单的网络服务器通过库运行tsung-recorder启动selenium,将firefox配置文件配置为使用tsung代理,并让它从第1步启动的服务器获取页面检查记录的库(它存在,在正确的位置等)对于第1步,虽然我可以在外部启动一个vanillarails应用程序(例如,%x{railss}),但我很确定有更好的方法以编程方式创建一个简单的网络服务器适合测试。tl;dr-在测试中以编程方式启动简单网络服务器的方法是什么? 最佳答案

ruby - 带有临时文件的奇怪的 Ruby IO

这让我发疯。请考虑以下事项:require'open-uri'#setuptempfileextname=File.extnamefile_urlbasename=File.basename(file_url,extname)file=Tempfile.new([basename,extname])#readformURIintotempfileuri=URI.parse(file_url)num_bytes_writen=file.write(uri.read)puts"Wrote#{num_bytes_writen}bytes"#Readingfrommytempfileputs"

带有字符串参数的 Ruby grep

我想将grep与字符串一起用作正则表达式模式。我该怎么做?例子:myArray.grep(/asd/i)#Worksperfectly.但我想先准备好我的声明searchString='/asd/i'myArray.grep(searchString)# Fails我怎样才能做到这一点?我需要准备一个字符串,因为这将进入搜索算法,并且查询将根据每个请求进行更改。谢谢。 最佳答案 正则表达式支持插值,就像字符串一样:var="hello"re=/#{var}/ipre#=>/hello/i

ruby - LoadError 通过要求带有 :path or :git 的 gem

我遇到了一个非常奇怪的问题。我在github上fork了一个gem来做一些修改,在我的本地机器上克隆了我的repo,进行了更改并更改了另一个项目的Gemfile以从我的本地存储库中获取gem以进行测试。不幸的是,我在我的ruby​​脚本中需要该gem时遇到LoadError。rvmcurrent=>ruby-1.9.3-p448ruby--version=>ruby1.9.3p448(2013-06-27revision41675)[x86_64-linux]bundle--version=>Bundlerversion1.3.5我的Gemfile的内容:source'http://r

ruby - 如何通过 CSS 而不是 XPath 选择带有文本内容的元素?

“Nokogiri:Howtoselectnodesbymatchingtext?”可以通过XPath执行此操作,但是,我正在寻找一种使用与元素文本匹配的CSS选择的方法。PyQuery和PHPQuery可以做到这一点。没有用于Ruby的jQueryAPI库吗? 最佳答案 Nokogiri(现在)实现了jQuery选择器,使得搜索节点文本成为可能:例如:require'nokogiri'html='foobar'doc=Nokogiri::HTML(html)doc.at('p:contains("bar")').text.stri

ruby - 为什么只有有限数量的正则表达式捕获存储在 `global_variables` 中?

如果我用包含十个捕获的正则表达式进行匹配:/(o)(t)(th)(f)(fi)(s)(se)(e)(n)(t)/.match("otthffisseent")然后,对于$10,我得到:$10#=>"t"但global_variables中缺少它。我得到(在irbsession中):[:$;,:$-F,:$@,:$!,:$SAFE,:$~,:$&,:$`,:$',:$+,:$=,:$KCODE,:$-K,:$,,:$/,:$-0,:$\,:$_,:$stdin,:$stdout,:$stderr,:$>,:$这里只列出前九个:$1,:$2,:$3,:$4,:$5,:$6,:$7,:$8,